<?php

global $arrGMenu;
require_once(BaseConfig::LoadClass('permiso.class.php'));

class Menu {
  
  /**
   * Funcion que le indica a la pagina que se va a ocultar el menu inicialmente
   * 
   * @global boolean $bolGOcultarMenuInicialmente Variable global que indica si el menu se ocultara de principio
   * @param  boolean $bolOcultar                  Indica si se ocultara o no el menu
   */
  static function OcultarMenuAlInicio($bolOcultar = true) {
    global $bolGOcultarMenuInicialmente;
    $bolGOcultarMenuInicialmente = $bolOcultar;
  }
  
  /**
   * Genera el menu con las opciones a mostrar
   * 
   * @param string $strTipoMenu Tipo de menu a desplegar (Por default "conf" para obtener el menu por configuracion)
   * @global array $arrGMenu
   */
  static function OpcionesMenu($strTipoMenu = "conf") {
    global $arrGMenu;
    global $oSesion;
    
    if($strTipoMenu == "conf") {
      global $strGSTipoMenu;
      if($strGSTipoMenu) {
        $strTipoMenu = $strGSTipoMenu;
      } else {
        $strTipoMenu = "sup";
      }
    }
    
    $arrPermisosGlobales = Permiso::ObtenerPermisosGlobales();
    $arrPermisosMenu     = Permiso::ObtenerPermisosMenu    ();
    
    if($oSesion->oUsuario->intIdUsuario) {
      $arrPermisosSesion = Permiso::ObtenerPermisosUsuario($oSesion->oUsuario->intIdUsuario);
    } else {
      $arrPermisosSesion = array();
    }
    
    foreach($arrPermisosGlobales as $strPermiso => $strDummy) {
      $arrPermisosSesion[] = $strPermiso;
    }
    
    $strMenu = "";
    if($strTipoMenu == "lat") {
      // Menu lateral
      $strMenu .= "<table class='TablaReportes'><tr><th>";
      $strMenu .= "<span class='ui-icon ui-icon-carat-2-e-w' id='gMostrarOcultarTablaMenuLateral'></span>";
      $strMenu .= "</th></tr></table>";
      
      global $bolGOcultarMenuInicialmente;
      if($bolGOcultarMenuInicialmente) {
        $strMenu .= "<table class='TablaReportes MenuLat' id='gTamlaMenuLateral' style='display:none;'>";
      } else {
        $strMenu .= "<table class='TablaReportes MenuLat' id='gTamlaMenuLateral' >";
      }
      foreach($arrGMenu as $intIndiceMenu => $strNombreMenu) {
        $strMenuInner = "";
        Variables::__AlternarModifier(1);
        if(!isset($arrPermisosMenu[$intIndiceMenu])) continue;
        foreach($arrPermisosMenu[$intIndiceMenu] as $strOpcionMenu => $strNombreSubMenu) {
          if(in_array($strOpcionMenu, $arrPermisosSesion)) {
            $strMenuInner .= "<tr " . Variables::AlternarConClase() . "><td>";
            $strMenuInner .= "&nbsp;&nbsp;&nbsp;";
            $strMenuInner .= "<a href='index.php?option=$strOpcionMenu'>$strNombreSubMenu</a>";
            $strMenuInner .= "</td></tr>";
          }
        }
        if($strMenuInner != "") {
          $strMenu .= "<tr><th>$strNombreMenu</th></tr>";
          $strMenu .= $strMenuInner;
        }
      }
      
      $strMenu .= "</table>";
      
      Variables::__AlternarModifier(1);
    } else {
      // Este es para generar el menu tipo Superior (Por default)
      $strMenu .= "<ul class='topnav'>";
      foreach($arrGMenu as $intIndiceMenu => $strNombreMenu) {
        $strMenuInner = "";
        if(!isset($arrPermisosMenu[$intIndiceMenu])) continue;
        foreach($arrPermisosMenu[$intIndiceMenu] as $strOpcionMenu => $strNombreSubMenu) {
          if(in_array($strOpcionMenu, $arrPermisosSesion)) {
            $strMenuInner .= "<li>";
            $strMenuInner .= "<a href='index.php?option=$strOpcionMenu'>$strNombreSubMenu</a>";
            $strMenuInner .= "</li>";
          }
        }
        if($strMenuInner != "") {
          $strMenu .= "<li>";
          $strMenu .= "<a href='#'>$strNombreMenu</a>";
          $strMenu .= "<ul class='subnav'>";
          $strMenu .= "$strMenuInner";
          $strMenu .= "</ul>";
          $strMenu .= "</li>";
        }
      }
      $strMenu .= "</ul>";
    }
    
    return $strMenu;
  }
}

?>